package com.cy.pj.goods.service;

import com.cy.pj.goods.dao.GoodsDao;
import com.cy.pj.goods.pojo.Goods;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 *
     业务逻辑
     1) 核心业务    (查找所有商品)
     2) 拓展业务    (把相关信息输出到日志中)
     问题
     1) 项目中的日志记录用的什么API? SLF4J(Simple Logging Facade for Java)
     2) 为什么使用该API? (这组API定义了日志的规范- 程序中建议耦合规范 -> 提高其可扩展性)
     3) 这组API的具体体现, 在项目中用的是谁? (ch.qos.logback.classic.Logger)
     4) 为什么不用log4j? (异步情况下, logback性能高于log4j, Spirng内置logback)
     5) 项目中的日志是同步写 还是 异步写? (大部分异步, 提高用户体验)
     6) 你了解日志的级别吗?(日志的输出级别, )
 */


@Service
public class GoodsServiceImpl implements GoodsService{

//    添加日志输出类, 将程序运行的状态保存为日志格式
    private static final Logger log = LoggerFactory.getLogger(GoodsServiceImpl.class);

    @Autowired
    private GoodsDao goodsDao;

    @Override
    public List<Goods> findObjects() {
        long t1 = System.currentTimeMillis();
        List<Goods> list = goodsDao.findGoods();
        long t2 = System.currentTimeMillis();
//        将信息输出到日志格式中,  日志目录可以自行设置, 也可以设置日志级别在application.properties文件中修改
        log.info("findGoods() -> t2 - t1 = {}", t2 - t1);
        return list;
    }
}
